package cn.openea.perpartner.meily.web.entity.dto;

import cn.openea.perpartner.meily.web.entity.PersonalInfo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;

import java.util.function.Function;

/**
 * @author ysk
 * @version 1.0.1
 * @Description 测评师DTO
 * @createTime 2023年05月04日 18:33:00
 */
@Component
public class EvaluatorPeopleDTOFactory {
    /**
     * 测评师基本信息DTO
     */
    @Data
    @SuperBuilder
    @AllArgsConstructor
    @NoArgsConstructor
    public static class EvaluatorPeopleBasicInfoDTO {
        private String id;
        // 创建时间
        private String createTime;
        // 更新时间
        private String updateTime;
        // 测评喜好（1个主类目）
        private String mainCategory;
        // 测评喜好（3个副类目）
        private String secondCategory;
        // 兴趣领域
        private String interests;
        // 是否有抖音。默认：无
        private String tiktok;
        // 抖音粉丝数
        private String tiktokFans;
        // 抖音获赞数
        private String tiktokLikes;
        // 是否有小红书。默认：无
        private String littleRedBook;
        // 小红书粉丝数
        private String littleRedBookFans;
        // 小红书获赞与收藏数
        private String littleRedBookLikes;
        // 其他社交平台
        private String otherPlatforms;
        // 覆盖购物群（个）
        private String shoppingGroup;
        // 潜在消费群体（人）
        private String potentialConsumer;
        // 测评师等级。默认C
        private String evaluationGrade;
        // 是否愿意为平台分销商品赚取佣金。默认：是
        private String willingDistribute;
    }

    public Function<PersonalInfo, EvaluatorPeopleBasicInfoDTO> toBasicInfoDTO = (personalInfo) -> {
        if (personalInfo == null) {
            return null;
        }
        EvaluatorPeopleBasicInfoDTO basicInfoDTO = new EvaluatorPeopleBasicInfoDTO();
        BeanUtils.copyProperties(personalInfo, basicInfoDTO);
        return basicInfoDTO;
    };
}
